package com.example;

import jakarta.servlet.http.HttpSession;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Description:实现用户登陆校验
 * User: bjc
 * Date: 2025-07-01
 * Time: 10:56
 */
@RestController
@RequestMapping("/user")
public class UserController {
    /**
     * 校验用户账号和密码是否正确
     * @param userName
     * @param password
     * @return
     */
    @GetMapping("/login")
    public boolean login(String userName, String password, HttpSession session){
        //1.校验参数是否合法
        if(!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)){
            return false;
        }
        //2.校验用户名密码
        //正常应该从数据库中获取账号密码，现在先把账号密码写死
        if(!"admin".equals(userName) || !"123".equals(password)){
            return false;
        }
        //3.校验成功，使用session保存用户信息
        /*
        void setAttribute(String name, Object value)
            name：要存储的属性名称（键），类型为 String。
            value：要存储的属性值，类型为 Object，可以是任意 Java 对象

        后续如果获取请求中的session对象，则可以使用session.getAttribute("loginUser")获取用户名
        需要强制转换为String类型
         */
        session.setAttribute("loginUser",userName);
        System.out.println(session.getAttribute("loginUser"));
        return true;
    }
    /**
     * 获取用户信息
     * @return
     */
    @GetMapping("/getUser")
    public String getUser(HttpSession session){
        //1.从session中获取用户名
        String userName = (String) session.getAttribute("loginUser");
        //2.判断从session中获取的用户是否登陆，如果登陆成功，则返回用户名，否则返回未登陆
        if(StringUtils.hasLength((userName))){
            return userName;
        }
        return "未登陆";
    }
}
